//学习包的知识


import java.util.Date;

public class Bag {
    /**
     * 封装
     *  面向都西昂程序三大特性：封装，继承，多态
     *  封装：将数据和操作数据的方法进行有机结合，隐藏对象的属性和实现细节，仅对外公开接口和对象进行交互
     *  访问限定符的范围：
     *  1.private 只能在同一包里的同一类使用
     *  2.default:能在同一包里的不同类使用
     *  3.protected：不仅能在同一包里的不同类使用，还能在不同包中的子类使用
     *  4.public：都能用
     */
    //说明：
    //protected 主要是在继承中使用
    //default权限指：说明都不写的默认权限
    //访问权限粗话了可以限制类中成员的可见性，也可以控制类的可见性

    //Java中，为了更好的管理类，把多个类收集在一起成为一组，成为包，类似于目录
    //同一个工程中允许存在相同名称的类，只要在不同的包即可

    //Java已经提供了很多现成的类供程序员使用
    //例如：
//    public static void main(String[] args) {
//        Date date = new Date();
//        //得到一个时间戳
//        //需要import语句导包
//        System.out.println(date.getTime());
//    }
//    public static void main(String[] args) {
//        double a = 20.5;
//        double b = 15.2;
//        double result = Math.sqrt(Math.pow(a,2) + Math.pow(b,3));
//        System.out.println(result);
//    }

    //import 和 include 差距很大 但作用都是使用开发编译器直接提供给我们的方法
    //include 是会在编译的时候，把方法全部拉在main函数前面
    //Java不需要，只是在用的时候再去找

    //自定义包：
    //1.在文件的最上方加上一个package语句指定该代码在那个包里面
    //2.包的名字一般会采用公司域名的颠倒形式(com.baidu.www) -- 英文字母必须全是小写
    //3.包名和代码的路径相匹配，例如，创建一个com.baidu.www的包，就会存在一个对应的路径com/baidu/www来存储代码
    //4.如果一个类没有package语句，则该类放到一个默认包里面
}
